#include "Lcd1602.h"
#include "stdio.h"
#include "string.h"

void Lcd1602Delay1ms(unsigned int c)
{
	unsigned char a,b;
	for(;c>0;c--)
	{
		for(b=199;b>0;b--)
		{
			for(a=1;a>0;a--);
		}
	}
}

//Lcd1602写函数（模式，参数）
//mode0为写命令模式
//mode1为写数据模式
void Lcd1602Write(char mode,unsigned char dat)
{
	Lcd1602E=0;		//使能
	Lcd1602RS=mode;		//选择发送命令
	Lcd1602RW=0;		//选择写入

	Lcd1602DataPins=dat;	//放入命令
	Lcd1602Delay1ms(1);	//等待数据稳定

	Lcd1602E=1;		//写入时序
	Lcd1602Delay1ms(5);	//保持时间
	Lcd1602E=0;		//使能清零
}

//Lcd1602静态显示(行，内容)
void Lcd1602StaticShow(char line,char chars[100])
{
	char i;
	char c;
	char Lcd1602Messages[100];

	strcpy(Lcd1602Messages,chars);
	c=sizeof(Lcd1602Messages)/sizeof(char);
	if(line==0)
	{
		Lcd1602Write(0,0x01);
		for(i=0;i<c;i++)
		{
			if(Lcd1602Messages[i]=='\0')break;
			Lcd1602Write(1,Lcd1602Messages[i]);
		}
	}
	else
	{
		Lcd1602Write(0,0x40+0x80);
		for(i=0;i<c;i++)
		{
			if(Lcd1602Messages[i]=='\0')break;
			Lcd1602Write(1,Lcd1602Messages[i]);
		}
	}
}

//Lcd1602初始化
void Lcd1602Init()
{
	Lcd1602Write(0,0x38);	//打开显示
	Lcd1602Write(0,0x0c);	//不显示光标
	Lcd1602Write(0,0x06);	//写一个指针加1
	Lcd1602Write(0,0x01);	//清屏
	Lcd1602Write(0,0x80);	//设置数据指针起点
}
